#pragma once
#include<boost/noncopyable.hpp>
#include "ImportExport.hpp"

namespace he
{
	class Building;
	class MapRenderer;
	class BuildingMaterialManager;

	//! Building renderer.
	class BuildingRenderer : boost::noncopyable
	{
		// Attributes
	private:
		//! Map.
		Map const &m_Map;
		//! Map renderer.
		MapRenderer const &m_MapRenderer;
		//! Ogre scene manager.
		Ogre::SceneManager &m_SceneManager;
		//! Building material manager.
		BuildingMaterialManager const &m_BuildingMaterialManager;

		// Operations
	public:
		//! Add building to renderer.
		HE_ENGINE_API void add(Building const &Building_);

		// Construction/Destruction
	public:
		HE_ENGINE_API BuildingRenderer(Map const &Map_, MapRenderer const &MapRenderer_, Ogre::SceneManager &SceneManager, BuildingMaterialManager const &BuildingMaterialManager_);
	};
} /*he*/
